package cn.com.forever.LinkedList;

/*
    描述
    输入一个链表，反转链表后，输出新链表的表头。
    示例1
    输入：{1,2,3}
    返回值：{3,2,1}
 */
public class ReverseList {
    public static void main(String[] args) {

    }

    public static ListNode reverselist(ListNode head){
        if(head == null){
            return null;
        }
        ListNode pre = null; //指定当前节点的前一个节点，也是新链表的头指针
        ListNode next = null; // 临时节点
        while(head != null){
            next = head.next; //取到当前节点的下一个节点
            head.next = pre; //当前节点指向前一个节点
            pre = head; //新链表的头指针后移一个节点
            head = next; //当前节点后移
        }
        return head;
    }
}
